/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fornecedor;

import java.util.List;
import util.ErroAcessoRepositorioException;

/**
 *
 * @author Tulio José
 *  @author Alberto Medeiros
 */
public class CadastroFornecedor {
    
    private RepositorioFornecedor objRepositorioFornecedor = null;

    public CadastroFornecedor() {
    }

    public CadastroFornecedor(RepositorioFornecedor objRepositorioFornecedor) {
        this.objRepositorioFornecedor = objRepositorioFornecedor;
    }
    
    /**
     * Método que ira cadastrar / atualizar os Fornecedores na base
     * 
     * @param objFornecedor
     * @throws ErroAcessoRepositorioException 
     */
    public void cadastrarAtualizar(Fornecedor objFornecedor) throws ErroAcessoRepositorioException{
        this.objRepositorioFornecedor.cadastrarAtualizar(objFornecedor);
    }

     /**
     * Método que irá procurar um determinado objeto na base
     * 
     * @param idFornecedor
     * @throws FornecedorNaoCadastradoException
     * @throws ErroAcessoRepositorioException 
     * @return Fornecedor
     */
    public Fornecedor procurar(int idFornecedor) throws FornecedorNaoCadastradoException, ErroAcessoRepositorioException{
       return  this.objRepositorioFornecedor.procurar(idFornecedor);
    }
    
     /**
     * Método que ira verificar a existência de um objeto na base
     * 
     * @param idFornecedor
     * @throws ErroAcessoRepositorioException 
     * @return boolean
     */
    public boolean existe(int idFornecedor) throws ErroAcessoRepositorioException{
        return this.objRepositorioFornecedor.existe(idFornecedor);
    }
    
    /**
     * Método que ira listar todos os objetos da base     * 
     * 
     * @return List<Fornecedor>
     * @throws Exception
     * @throws ErroAcessoRepositorioException 
     */
    public List<Fornecedor> listar(String strComplemento) throws Exception, ErroAcessoRepositorioException{
        return this.objRepositorioFornecedor.listar(strComplemento);
    }

    /**
     * Método que ira remover um determinado objeto pelo id da base
     * 
     * @param idFornecedor
     * @throws FornecedorNaoCadastradoException
     * @throws ErroAcessoRepositorioException 
     */
    public void remover(int idFornecedor) throws FornecedorNaoCadastradoException, ErroAcessoRepositorioException{
        this.objRepositorioFornecedor.remover(idFornecedor);
    }
    
    /**
     * Método que ira listar os objetos Fornacedores na base pela descrição
     * 
     * @throws Exception
     * @throws ErroAcessoRepositorioException
     * @return List<Fornecedor>
     */
    public List<Fornecedor> listarPorDescricao(String strDescricao) throws Exception, ErroAcessoRepositorioException {
        return this.objRepositorioFornecedor.listarPorDescricao(strDescricao);
    }
}
